<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用迭代器的方式操作数组</title>
</head>
<body>
    
</body>
<script>
    /*
        迭代器是怎么操作的？
            如果是迭代器元素，那么它就有一个next方法，  并不会一次性的将数组全部循环完 而是next一下，索引加1
                就类似于是C语言中指针的操作  也是next()
    */
    let arr = ['jimmy','ysh','xuexue']
    let item = arr.values()  //.values()方法产生的迭代器  迭代传输的是数组的值
    console.log(item.next())  //  {value: "jimmy", done: false}  done表示的是是否迭代完成，也就是说数组还有没有元素（数组还有没有遍历完）  True代表的是迭代完成

    let items = arr.keys()  // keys()方法产生的迭代器  迭代传输的是数组的索引
    console.log(items.next()) // {value: 0, done: false}

    // 使用迭代器遍历数组
    while(({value,done} = item.next())&&done!= true){
        console.log(value)
    }

    /*
        结构赋值知识点：
        let [a,b] = [1,2]
        a = 1  b = 2
        let {a,b} = {a:12,b:15}
        a = 12   b = 15

        结构赋值  也就是说  左边两边的数据类型要一样的  才可以赋值  
            左右两边的数据要能够匹配
    */
</script>
</html>